Backup storage systems traditionally have been designed and optimized such that data is stored and restored from the backup storage systems in a sequential manner. Modern backup technologies, such as VM Instant Access/Instant Restore from EMC and changed block tracking (CBT), however do not merely access data sequentially. Instead, such modern backup technologies may access data both sequentially and randomly, i.e., mixed input/output (IO) workload. Generally, a sequential IO workload has better latency performance as opposed to a random IO workload as accessing data sequentially is much faster than accessing data randomly due to the way a storage device, for example a hard disk drive (HDD), operates.
In a mixed IO workload scenario, however, the challenges to consider are: (a) predictable latency for random IO workloads and (b) sufficient throughput for sequential IO workloads. With respect to random IO workloads, read requests may occur synchronously. Although system response may be minimally affected by a write latency (the time required to service a write request), read latency (the time required to service a read request) however poses a greater challenge. Complicating matters, read requests may be dependent on each other. As an example, in a random IO workload, consider reading an image file where each read occurs in term of 4 KB read chunks. The reading of a subsequent chunk (or next file, for that matter), however, may not begin until a previous chunk is read from a storage device (e.g., HDD). Thus, if a particular read request is individually starved, the total latency may compound and exponentially grow, thereby impacting the storage system's performance.
With respect to sequential IO workloads, traditional backup storage systems may depend on the throughput to ensure that a backup window is not exceeded, and that a client backup software does not timeout due to a high IO response time.